import 'dart:convert';
import 'package:json_annotation/json_annotation.dart';

part 'EcyApiCommonResponse.g.dart'; // 自动生成的文件名

@JsonSerializable(genericArgumentFactories: true) // 使用泛型的注解
class EcyApiCommonResponse<T> {
  int? code;
  String? msg;
  T? data;

  EcyApiCommonResponse();

  // 使用 json_serializable 自动生成的方法，添加泛型转换
  factory EcyApiCommonResponse.fromJson(
          Map<String, dynamic> json, T Function(Object? json) fromJsonT) =>
      _$EcyApiCommonResponseFromJson(json, fromJsonT);

  Map<String, dynamic> toJson(Object Function(T value) toJsonT) =>
      _$EcyApiCommonResponseToJson(this, toJsonT);

  @override
  String toString() {
    return jsonEncode(this);
  }
}
